package comunicacao;

import java.io.IOException;
import java.io.ObjectInputStream;
import java.net.Socket;

public class ThreadReceberInformacoesServico extends Thread {
	private ObservadorTCP observador;
	
	public ThreadReceberInformacoesServico(ObservadorTCP obs){
		this.setObservador(obs);
	}
	
	@Override
	public void run() {
		Socket socket;
		ObjectInputStream input;
		MensagemInformacoesServico mensagem;
		super.run();
		while(true) {
			try {
				socket = this.observador.getServerSocket().accept();
				input = new ObjectInputStream(socket.getInputStream());
				Mensagem m = (Mensagem)input.readObject();
				if(m instanceof MensagemInformacoesServico){
					mensagem = (MensagemInformacoesServico)m;
					observador.getListaServidores().add(socket.getInetAddress().getHostAddress()+"-"
					+mensagem.getInfo()+"-"+mensagem.getTotalParticipantes()+'-'
					+mensagem.getParcialParticipantes());
				}
				
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} catch (ClassNotFoundException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		
	}

	public ObservadorTCP getObservador() {
		return observador;
	}

	public void setObservador(ObservadorTCP observador) {
		this.observador = observador;
	}

}
